//index.js
//获取应用实例
const app = getApp()

Page({
	data: {
		array: ['考研', '保研', '就业'],
		objectArray: [
			{
				id: 0,
				name: '考研'
			},
			{
				id: 1,
				name: '保研'
			},
			{
				id: 2,
				name: '就业'
			}
		],
		// 同时也是滚动选择器的初始下标
		index: 0,
		// 输入框是否禁用
		isDisabled: false,
		// 设置文本输入框的值为 ture 或者 false（这2个变量是常量，不会被修改），直接设置 disabled = flagTure 或者 disabled = flagFalse
		flagTrue: true,
		flagFalse: false,
		// 用户id
		uid: "",
		// 用户选择的目标类型，
		targetType: -1,

		// 考研
		targetFirst: {
			// 报考学校
			school: "",
			// 参考书目
			book: ""
		},

		// 保研
		targetSecond: {
			// 学业成绩（70%）+科研及专业表现（20%）+综合素质（10%）
			detail1: "",
			// 发表论文情况6%
			detail2: "",
			// 本科生创新实践项目6%
			detail3: "",
			// 参赛获奖6%
			detail4: "",
			// 软考职称证书2%
			detail5: "",
		},

		// 就业
		targetThird: {
			// 简历准备得怎么样了
			detail1: "",
			// 专业实践项目
			detail2: "",
			// 就业意向
			detail3: "",
			// 面试了哪些企业
			detail4: "",
			// 必修课[最低121.5学分（卓越班133.5）]
			detail5: "",
			// 选修课[专业选修32.5学分（卓越班20.5）+Ⅱ类通知课6学分+创新创业课4学分]
			detail6: "",
			// 英语四级（学位英语或大学英语1&2均70以上）
			detail7: "",
			// 第二课堂（2学分）
			detail8: "",

		}

	},

	// 点击 “考研” 下面的 “确定目标” 按钮
	sureTarget1: function (e) {

		wx.showLoading({
			title: '更新目标中...',
		})

		setTimeout(function () {
			wx.hideLoading({
				success: (res) => { },
			})
		}, 5000)


		// 1. 先判断是新建记录还是更新记录（根据 targetType 来判断， targetType 在页面加载的时候已经查询到了）
		wx.request({
			url: app.globalData.url + 'wx/user/getTargetDetial',
			method: "GET",
			data: {
				"uid": this.data.uid,
				// 注意：这里是 index，应该用户可能会更改目标，所以目标类型是 （index + 1）
				"targetType": this.data.index + 1
			},
			success: res => {
				if (res.data.kaoyanCode == 200) {
					// 能够查询得到，说明接下来是更新操作
					console.log("更新 考研")

					wx.request({
						url: app.globalData.url + 'wx/koayan/updateOne',
						// url: 'http://localhost:443/wx/koayan/updateOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						data: {
							// 这里是根据用户id进行更新操作
							"uid": this.data.uid,
							"school": this.data.targetFirst.school,
							"book": this.data.targetFirst.book
						},
						success: res => {
							console.log(res);

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							});

							this.changeUserTargetType();
						}
					})

				} else if (res.data.kaoyanCode == 400) {
					// 不能查询到结果，说明接下来是插入操作
					console.log("插入 考研")


					wx.request({
						url: app.globalData.url + 'wx/kaoyan/insertOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						data: {
							"uid": this.data.uid,
							"school": this.data.targetFirst.school,
							"book": this.data.targetFirst.book
						},
						success: res => {
							console.res;

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							})

							// 2. 同时还要更新用户的目标类型
							this.changeUserTargetType();
						}
					})

				}
			}
		})

	},

	// 点击 “保研” 下面的 “确定目标” 按钮
	sureTarget2: function (e) {
		wx.showLoading({
			title: '更新目标中...',
		})

		setTimeout(function () {
			wx.hideLoading({
				success: (res) => { },
			})
		}, 5000)

		// 1. 先判断是新建记录还是更新记录（根据 targetType 来判断， targetType 在页面加载的时候已经查询到了）
		wx.request({
			url: app.globalData.url + 'wx/user/getTargetDetial',
			method: "GET",
			data: {
				"uid": this.data.uid,
				// 注意：这里是 index，应该用户可能会更改目标，所以目标类型是 （index + 1）
				"targetType": this.data.index + 1
			},
			success: res => {

				if (res.data.baoyanCode == 200) {
					// 能够查询得到，说明接下来是更新操作
					console.log("更新 保研")

					wx.request({
						url: app.globalData.url + 'wx/baoyan/updateOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						// 注意：这里是根据 “用户id” 进行更新
						data: {
							"uid": this.data.uid,
							"b_detail_a": this.data.targetSecond.detail1,
							"b_detail_b": this.data.targetSecond.detail2,
							"b_datail_c1": this.data.targetSecond.detail3,
							"b_datail_d1": this.data.targetSecond.detail4,
							"b_datail_e1": this.data.targetSecond.detail5,
						},
						success: res => {
							console.log(res);

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							})

							// 2. 同时还要更新用户的目标类型
							this.changeUserTargetType();
						}
					})

				} else if (res.data.baoyanCode == 400) {
					// 不能查询到结果，说明接下来是插入操作
					console.log("插入 保研")

					wx.request({
						url: app.globalData.url + 'wx/baoyan/insertOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						data: {
							"uid": this.data.uid,
							"b_detail_a": this.data.targetSecond.detail1,
							"b_detail_b": this.data.targetSecond.detail2,
							"b_datail_c1": this.data.targetSecond.detail3,
							"b_datail_d1": this.data.targetSecond.detail4,
							"b_datail_e1": this.data.targetSecond.detail5,
						},
						success: res => {
							console.log(res);

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							})

							// 2. 同时还要更新用户的目标类型
							this.changeUserTargetType();
						}
					})
				}
			}
		})

	},

	// 点击 “就业” 下面的 “确定目标” 按钮
	sureTarget3: function (e) {

		wx.showLoading({
			title: '更新目标中...',
		})

		setTimeout(function () {
			wx.hideLoading({
				success: (res) => { },
			})
		}, 5000)

		// 1. 先判断是新建记录还是更新记录（根据 targetType 来判断， targetType 在页面加载的时候已经查询到了）
		wx.request({
			url: app.globalData.url + 'wx/user/getTargetDetial',
			method: "GET",
			data: {
				"uid": this.data.uid,
				// 注意：这里是 index，应该用户可能会更改目标，所以目标类型是 （index + 1）
				"targetType": this.data.index + 1
			},
			success: res => {

				if (res.data.jiuyeCode == 200) {
					// 能够查询得到，说明接下来是更新操作
					console.log("更新 就业")

					wx.request({
						url: app.globalData.url + 'wx/jiuye/updateOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						data: {
							"uid": this.data.uid,
							"j_detail_a": this.data.targetThird.detail1,
							"j_detail_b": this.data.targetThird.detail2,
							"j_detail_c": this.data.targetThird.detail3,
							"j_detail_d": this.data.targetThird.detail4,
							"j_detail_e": this.data.targetThird.detail5,
							"j_detail_f": this.data.targetThird.detail6,
							"j_detail_g": this.data.targetThird.detail7,
							"j_detail_h": this.data.targetThird.detail8,
						},
						success: res => {
							console.log(res);

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							})

							// 2. 同时还要更新用户的目标类型
							this.changeUserTargetType();
						}

					})

				} else if (res.data.jiuyeCode == 400) {
					// 不能查询到结果，说明接下来是插入操作
					console.log("新增 就业")

					wx.request({
						url: app.globalData.url + 'wx/jiuye/insertOne',
						method: "POST",
						header: { 'content-type': 'application/x-www-form-urlencoded' },
						data: {
							"uid": this.data.uid,
							"j_detail_a": this.data.targetThird.detail1,
							"j_detail_b": this.data.targetThird.detail2,
							"j_detail_c": this.data.targetThird.detail3,
							"j_detail_d": this.data.targetThird.detail4,
							"j_detail_e": this.data.targetThird.detail5,
							"j_detail_f": this.data.targetThird.detail6,
							"j_detail_g": this.data.targetThird.detail7,
							"j_detail_h": this.data.targetThird.detail8,
						},
						success: res => {
							console.log(res);

							// 返回的 code 等于 87014，说明存在敏感内容
							if (res.data.code == 87014) {
								wx.hideLoading({
									success: (res) => { },
								})

								wx.showModal({
									title: '失败',
									content: '请勿发表敏感内容',
									showCancel: false,
									success: res => {
										if (res.confirm) {
											console.log('用户点击确定')
											this.loadingData();
										}
									}
								})
								return;
							}

							// 还要设置一下 targetType 的值
							this.setData({
								"targetType": this.data.index + 1
							})

							// 2. 同时还要更新用户的目标类型
							this.changeUserTargetType();
						}

					})

				}

			}


		})

	},

	// 更改用户的目标类型
	changeUserTargetType: function () {
		console.log("changeUser");

		wx.request({
			url: app.globalData.url + 'wx/user/updateUserTargetType',
			method: "POST",
			header: { 'content-type': 'application/x-www-form-urlencoded' },
			data: {
				"uid": this.data.uid,
				"targetType": this.data.targetType
			},
			success: res => {

				wx.hideLoading({
					success: (res) => { },
				})

				wx.showToast({
					title: '更新目标成功！',
					icon: 'success',
					duration: 2000
				})
			}
		})
	},

	// 点击 “问号” 按钮，进行页面跳转
	aboutIndex: function (e) {
		wx.navigateTo({
			url: '/pages/aboutindex/aboutindex',
			success: function (res) {
				// 通过eventChannel向被打开页面传送数据
				res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
			}
		})
	},

	// 滚动选择器 事件函数
	bindPickerChange: function (e) {

		// 这里的 index 的值要始终保持为数字类型，所以这里要进行类型转换
		var tempIndex = parseInt(e.detail.value);
		console.log('picker发送选择改变，携带值为', e.detail.value)
		this.setData({
			index: tempIndex
		})
	},

	// 声明周期函数：页面加载
	onLoad: function () {
		// 加载数据，调用封装的方法
		this.loadingData();
	},

	// 生命周期函数：用户下拉刷新
	onPullDownRefresh: function () {
		console.log("refresh");

		// 加载数据，调用封装的方法
		this.loadingData();
	},

	loadingData: function () {
		// 1. 从全局中获取 uid
		this.setData({
			"uid": app.globalData.myUserInfo.id
		})

		wx.showLoading({
			title: '带球突破中...',
		})


		// 2. 先执行查询操作，查询用户对应的目标，如果已经有了目标，将目标的值渲染到页面上。
		wx.request({
			url: app.globalData.url + 'wx/user/queryTargetTypeById',
			method: "GET",
			data: {
				"uid": this.data.uid
			},
			success: res => {
				console.log(res);
				if (res.data.code == 200) {
					// index 的下标从0开始，而目标类型分别是1,2,3，所以这里需要减一
					this.setData({
						"index": res.data.data - 1,
						"targetType": res.data.data
					})

					/*
						2.2 获取用户的目标类型之后，渲染该目标的具体内容
							发送请求是将用户类型发送获取，然后根据不同那类型查询不同的表
					*/
					wx.request({
						url: app.globalData.url + 'wx/user/getTargetDetial',
						method: "GET",
						data: {
							"uid": this.data.uid,
						},
						success: res => {
							console.log(res);

							// 渲染用户的数据，将 “考研”，“保研”，“就业” 的数据都渲染出来
							// 1. 渲染 “考研数据”
							this.setData({
								"targetFirst.school": (res.data.kaoyan.kSchool == null ? "" : res.data.kaoyan.kSchool),
								"targetFirst.book": (res.data.kaoyan.kBook == null ? "" : res.data.kaoyan.kBook),
							})

							// 2. 渲染 “保研数据”
							this.setData({
								"targetSecond.detail1": (res.data.baoyan.bDetailA == null ? "" : res.data.baoyan.bDetailA),
								"targetSecond.detail2": (res.data.baoyan.bDetailB == null ? "" : res.data.baoyan.bDetailB),
								"targetSecond.detail3": (res.data.baoyan.bDetailC == null ? "" : res.data.baoyan.bDetailC),
								"targetSecond.detail4": (res.data.baoyan.bDetailD == null ? "" : res.data.baoyan.bDetailD),
								"targetSecond.detail5": (res.data.baoyan.bDetailE == null ? "" : res.data.baoyan.bDetailE),

							})

							// 3. 渲染 “考研书籍”
							this.setData({
								"targetThird.detail1": (res.data.jiuye.jDetailA == null ? "" : res.data.jiuye.jDetailA),
								"targetThird.detail2": (res.data.jiuye.jDetailB == null ? "" : res.data.jiuye.jDetailB),
								"targetThird.detail3": (res.data.jiuye.jDetailC == null ? "" : res.data.jiuye.jDetailC),
								"targetThird.detail4": (res.data.jiuye.jDetailD == null ? "" : res.data.jiuye.jDetailD),
								"targetThird.detail5": (res.data.jiuye.jDetailE == null ? "" : res.data.jiuye.jDetailE),
								"targetThird.detail6": (res.data.jiuye.jDetailF == null ? "" : res.data.jiuye.jDetailF),
								"targetThird.detail7": (res.data.jiuye.jDetailG == null ? "" : res.data.jiuye.jDetailG),
								"targetThird.detail8": (res.data.jiuye.jDetailH == null ? "" : res.data.jiuye.jDetailH),
							})

							wx.hideLoading();

							wx.showToast({
								title: '球进了！',
								icon: 'success',
								duration: 1000
							})

						}
					})
				}
			}
		})
	},


	// 各个输入框对应的输入事件函数
	// 1. 考研
	// 1.1 报考学校？
	targetFirstSchool: function (e) {
		this.setData({
			"targetFirst.school": e.detail.value
		})
	},

	targetFirstBook: function (e) {
		this.setData({
			"targetFirst.book": e.detail.value
		})
	},

	// 2. 保研
	targetSecondDetail1: function (e) {
		this.setData({
			"targetSecond.detail1": e.detail.value
		})
	},

	targetSecondDetail2: function (e) {
		this.setData({
			"targetSecond.detail2": e.detail.value
		})
	},

	targetSecondDetail3: function (e) {
		this.setData({
			"targetSecond.detail3": e.detail.value
		})
	},
	targetSecondDetail4: function (e) {
		this.setData({
			"targetSecond.detail4": e.detail.value
		})
	},
	targetSecondDetail5: function (e) {
		this.setData({
			"targetSecond.detail5": e.detail.value
		})
	},

	// 3. 就业
	targetThirdDetail1: function (e) {
		this.setData({
			"targetThird.detail1": e.detail.value
		})
	},

	targetThirdDetail2: function (e) {
		this.setData({
			"targetThird.detail2": e.detail.value
		})
	},

	targetThirdDetail3: function (e) {
		this.setData({
			"targetThird.detail3": e.detail.value
		})
	},

	targetThirdDetail4: function (e) {
		this.setData({
			"targetThird.detail4": e.detail.value
		})
	},

	targetThirdDetail5: function (e) {
		this.setData({
			"targetThird.detail5": e.detail.value
		})
	},

	targetThirdDetail6: function (e) {
		this.setData({
			"targetThird.detail6": e.detail.value
		})
	},

	targetThirdDetail7: function (e) {
		this.setData({
			"targetThird.detail7": e.detail.value
		})
	},

	targetThirdDetail8: function (e) {
		this.setData({
			"targetThird.detail8": e.detail.value
		})
	}




})
